package com.example.demo.generator;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.nio.file.Paths;

public class CodeGenerator {
    public static void main(String[] args) {
        // 数据库连接配置
        String url = "jdbc:mysql://192.168.86.130:3306/database?serverTimezone=Asia/Shanghai";
        String username = "root";
        String password = "123456";

        // 创建代码生成器并设置配置
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> builder
                        .author("jiajun")  // 设置作者名
                        .outputDir(Paths.get(System.getProperty("user.dir")) + "/src/main/java")  // 设置代码输出路径
                        .commentDate("yyyy-MM-dd")  // 设置注释的日期格式
                        .disableOpenDir()  // 禁止自动打开代码目录
                )
                .packageConfig(builder -> builder
                        .parent("com.example.demo")  // 设置父包名
                        .entity("entity")  // 实体类包名
                        .mapper("mapper")  // Mapper接口包名
                        .service("service")  // Service接口包名
                        .serviceImpl("service.impl")  // Service实现包名
                        .xml("mapper.xml")  // Mapper XML文件包名
                )
                .strategyConfig(builder -> builder
                        .entityBuilder()
                        .enableLombok()  // 启用Lombok，生成getter/setter等方法
                )
                .templateEngine(new FreemarkerTemplateEngine())  // 使用Freemarker模板引擎
                .execute();  // 执行代码生成
    }
}